summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt36
1 files changed, 8 insertions, 28 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt
index 15c7ca3c9..94c151325 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt
@@ -5,48 +5,28 @@ package org.yuzu.yuzu_emu.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
-import androidx.recyclerview.widget.AsyncDifferConfig
-import androidx.recyclerview.widget.DiffUtil
-import androidx.recyclerview.widget.ListAdapter
-import androidx.recyclerview.widget.RecyclerView
import org.yuzu.yuzu_emu.databinding.ListItemAddonBinding
import org.yuzu.yuzu_emu.model.Addon
+import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder
-class AddonAdapter : ListAdapter<Addon, AddonAdapter.AddonViewHolder>(
- AsyncDifferConfig.Builder(DiffCallback()).build()
-) {
+class AddonAdapter : AbstractDiffAdapter<Addon, AddonAdapter.AddonViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AddonViewHolder {
ListItemAddonBinding.inflate(LayoutInflater.from(parent.context), parent, false)
.also { return AddonViewHolder(it) }
}
- override fun getItemCount(): Int = currentList.size
-
- override fun onBindViewHolder(holder: AddonViewHolder, position: Int) =
- holder.bind(currentList[position])
-
inner class AddonViewHolder(val binding: ListItemAddonBinding) :
- RecyclerView.ViewHolder(binding.root) {
- fun bind(addon: Addon) {
+ AbstractViewHolder<Addon>(binding) {
+ override fun bind(model: Addon) {
binding.root.setOnClickListener {
binding.addonSwitch.isChecked = !binding.addonSwitch.isChecked
}
- binding.title.text = addon.title
- binding.version.text = addon.version
+ binding.title.text = model.title
+ binding.version.text = model.version
binding.addonSwitch.setOnCheckedChangeListener { _, checked ->
- addon.enabled = checked
+ model.enabled = checked
}
- binding.addonSwitch.isChecked = addon.enabled
- }
- }
-
- private class DiffCallback : DiffUtil.ItemCallback<Addon>() {
- override fun areItemsTheSame(oldItem: Addon, newItem: Addon): Boolean {
- return oldItem == newItem
- }
-
- override fun areContentsTheSame(oldItem: Addon, newItem: Addon): Boolean {
- return oldItem == newItem
+ binding.addonSwitch.isChecked = model.enabled
}
}
}